


namespace Core.Extensions
{
    using System;
    using System.Collections.Generic;
    using Base;
    using Contracts.Enums;
    using Contracts.Interfaces;
    using Resources;

    /// <summary>
    /// Nexus  Defense Extension class
    /// </summary>
    
    public sealed class NexusDefense: ExtensionBase
    {
        /// <summary>
        /// Create a new instance of the <see cref="T:Core.Extensions.NexusDefense"/> class.
        /// </summary>
        public NexusDefense()
            : base(
                Traduction.extensions_nexus_defense, 
                ExtensionGroupsEnum.NexusManagement,
                5,
                0, 
                new ExtensionCost(125000,0),
                new ICondition<IExtension>[] {new ExtensionCondition<BasicSquadManagement>(1),new ExtensionCondition<ComplexMechanics>(3)} )
        {

            Modifiers = new IModifier[] { new Modifier(FeatureTypesEnum.Module, FeaturesEnum.NexusModuleArmorRepairAmountModification, 1.00),
                        new Modifier(FeatureTypesEnum.Robot, FeaturesEnum.ArmorRepairAmount, 1.00),
                        new Modifier(FeatureTypesEnum.Module, FeaturesEnum.NexusModuleArmorModification, 1.00),
                        new Modifier(FeatureTypesEnum.Module, FeaturesEnum.ArmorAmount, 1.00) };
        }

        /// <summary>
        /// Obtains the extension description
        /// </summary>
        public override string Description
        {
            get { return Traduction.extensions_nexus_defense_description; }
        }
    }
}